home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Just Call Me Internet
/
Just Call Me Internet.iso
/
prog
/
atari
/
m2
/
cat3src
/
magic
/
d
/
mtrsc.d
< prev
next >
Wrap
Text File
|
1997-10-26
|
5KB
|
105 lines
(*----------------------------------------------------------------------*
* *
* MAGICTOOLS Modula's All purpose GEM Interface Cadre Toolbox *
* ÿ ÿ ÿ ÿ ÿ *
*----------------------------------------------------------------------*
* Version 3.30 02.02.1992 (C)90/91/92 by Peter Hellinger Software *
*----------------------------------------------------------------------*
* Dieses Modul ist urheberrechtlich geschtzt. *
* *
* Die Verffentlichung des Quelltextes oder Teilen daraus, sowie die *
* Verbreitung des bersetzten, nicht gelinkten Codes in schriftlicher, *
* oder maschinenlesbarer Form, insbesondere in Zeitschriften, Mail- *
* boxen oder anderen Medien bedarf der ausdrcklichen schriftlichen *
* Einverstndnisserklrung des Autors. *
* *
* Die Verbreitung des Moduls als Teil eines gelinkten Programms ist *
* fr Lizenznehmer ausdrcklich erlaubt! Der Autor behlt sich das *
* Recht vor, diese Erlaubnis jederzeit und ohne Angaben von Grnden zu *
* widerrufen. *
*----------------------------------------------------------------------*)
(*----------------------------------------------------------------------*
* mtRsc Mehrere Resourcen in einem Programm verwenden... *
* *
* Dieses Modul ermglicht es, verschiedene RSC-Files in einem Programm *
* zu benutzen. Dazu stellt das Modul alle Funktionen der AES-Resource- *
* Routinen zur Verfgung. Die original AES-Routinen arbeiten IMMER mit *
* der zuletzt benutzten Resource. Alle ber dieses Modul geladenen Re- *
* sourcen werden bei Aufruf von mtAppl.ApplTerm freigegeben *
*----------------------------------------------------------------------*)
DEFINITION MODULE mtRsc;
FROM MagicSys IMPORT Nil, Null, Bit0, Bit1, Bit2, Bit3, Bit4, Bit5, Bit6,
Bit7, Bit8, Bit9, Bit10, Bit11, Bit12, Bit13, Bit14,
Bit15, LOC, Byte, ByteSet, sWORD, sINTEGER, sCARDINAL,
sBITSET, lINTEGER, lCARDINAL, lWORD, lBITSET;
IMPORT SYSTEM;
TYPE RESOURCE;
TYPE
RSXHDR = RECORD
rshVrsn : sCARDINAL; (* 3 fr langen Header *)
rshExtvrsn : sCARDINAL; (* 'IN' bei RSC von Interface *)
rshObject : lCARDINAL;
rshTedinfo : lCARDINAL;
rshIconblk : lCARDINAL;
rshBitblk : lCARDINAL;
rshFrstr : lCARDINAL;
rshString : lCARDINAL;
rshImdata : lCARDINAL;
rshFrimg : lCARDINAL;
rshTrindex : lCARDINAL;
rshNobs : lCARDINAL;
rshNtree : lCARDINAL;
rshNted : lCARDINAL;
rshNib : lCARDINAL;
rshNbb : lCARDINAL;
rshNstring : lCARDINAL;
rshNimages : lCARDINAL;
rshRssize : lCARDINAL;
END;
PROCEDURE LoadRsc (REF name: ARRAY OF CHAR; VAR rsc: RESOURCE): BOOLEAN;
(* Ldt ein Resourcefile. TRUE wenn erfolgreich *)
PROCEDURE RelocRsc (adress: SYSTEM.ADDRESS; VAR rsc: RESOURCE): BOOLEAN;
(* Reloziert eine Resource, die bereits im Speicher ist. Kann dazu
* benutzt werden, um Programm-Interne Resourcen zu relozieren. Geht
* davon aus, da das gesamte Resource-File incl. Header etc. im
* Speicher steht! Der Q&D RSCCODER (im Lieferumfang von Magic) erzeugt
* aus einem RSC-File die entsprechenden Daten. TRUE wenn erfolgreich.
*)
PROCEDURE FreeRsc (VAR rsc: RESOURCE);
(* Gibt Resource wieder frei. *)
PROCEDURE FreeAll;
(* Gibt alle Resourcen wieder frei. *)
PROCEDURE GaddrRsc (rsc: RESOURCE; type, item: sINTEGER): SYSTEM.ADDRESS;
(* Wie MagicAES.RsrcGaddr, jedoch mit der aktuellen Resource *)
PROCEDURE SaddrRsc (rsc: RESOURCE; type, item: sINTEGER; tree: SYSTEM.ADDRESS);
(* Wie MagicAES.RsrcSaddr, jedoch mit der aktuellen Resource *)
PROCEDURE ObfixRsc (rsc: RESOURCE; tree: SYSTEM.ADDRESS; object: sINTEGER);
(* Wie MagicAES.RsrcObfix, jedoch mit der aktuellen Resource *)
PROCEDURE GetRscHeader (rsc: RESOURCE; VAR hdr: RSXHDR);
(* Liefert den RscHeader im langen Format *)
PROCEDURE InitMtRsc;
(* Initialisiert die MtRscs. Wird normalerweise im Modulkrper
* aufgerufen, und braucht nicht weiter beachtet zu werden.
*)
END mtRsc.